#define _CRT_SECURE_NO_WARNINGS 1	
#include<stdio.h>
#include<assert.h>
#include<string.h>

////memcpy
//void* myMemcpy(void* dest, const void* str, size_t k)
//{
//	assert(dest && str);
//	char* tmp = dest;
//	while (k--)
//	{
//		*(char*)dest = *(char*)str;
//		dest = (char*)dest + 1;
//		str = (char*)str + 1;
//	}
//	return tmp;
//}
//int main()
//{
//	int arr1[10] = { 0 };
//	int arr2[] = { 1,2,3,4,5,6,7,8,9,10 };
//	myMemcpy(arr1 , arr2, sizeof(int) * 5);
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", arr1[i]);
//	}
//	return 0;
//}

////memmove
//void* myMemmove(void* dest, const void* str, size_t k)
//{
//	assert(dest && str);
//	char* tmp = dest;
//	if (dest < str)
//	{
//		while (k--)
//		{
//			*(char*)dest = *(char*)str;
//			dest = (char*)dest + 1;
//			str = (char*)str + 1;
//		}
//	}
//	else
//	{
//		while (k--)
//		{
//			*((char*)dest + k) = *((char*)str + k);
//		}
//	}
//	return tmp;
//}
//int main()
//{
//	int arr1[10] = { 0 };
//	int arr2[] = { 1,2,3,4,5,6,7,8,9,10 };
//	myMemmove(arr2 + 2, arr2, sizeof(int) * 5);
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//	return 0;
//}